/*
 *
 *  * Copyright (c) 2020-2023, Lykan (jiashuomeng@gmail.com).
 *  * <p>
 *  * Licensed under the Apache License, Version 2.0 (the "License");
 *  * you may not use this file except in compliance with the License.
 *  * You may obtain a copy of the License at
 *  * <p>
 *  *     http://www.apache.org/licenses/LICENSE-2.0
 *  * <p>
 *  * Unless required by applicable law or agreed to in writing, software
 *  * distributed under the License is distributed on an "AS IS" BASIS,
 *  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  * See the License for the specific language governing permissions and
 *  * limitations under the License.
 *
 */
package cn.kstry.flux.demo.config.diagram;

import cn.kstry.framework.core.component.bpmn.ProcessDiagramRegister;
import cn.kstry.framework.core.component.bpmn.builder.SubProcessLink;
import cn.kstry.framework.core.component.bpmn.link.ProcessLink;
import cn.kstry.framework.core.component.jsprocess.transfer.JsonProcessParser;
import org.springframework.stereotype.Component;

import java.io.InputStream;
import java.util.List;
import java.util.Map;

/**
 *
 * @author lykan
 */
@Component
public class JsProcessRegister implements ProcessDiagramRegister {

    @Override
    public void registerDiagram(List<ProcessLink> processLinkList) {
        InputStream inputStream = JsProcessRegister.class.getClassLoader().getResourceAsStream("process.json");

        JsonProcessParser jsonProcessParser = new JsonProcessParser(this, inputStream);
        Map<String, ProcessLink> allProcessLink = jsonProcessParser.getAllProcessLink();
        allProcessLink.forEach((k, v) -> {
            processLinkList.add(v);
        });
    }

    @Override
    public void registerSubDiagram(List<SubProcessLink> subLinkBuilderList) {
        InputStream inputStream = JsProcessRegister.class.getClassLoader().getResourceAsStream("process.json");

        JsonProcessParser jsonProcessParser = new JsonProcessParser(this, inputStream);
        Map<String, SubProcessLink> allSubProcessLink = jsonProcessParser.getAllSubProcessLink();
        allSubProcessLink.forEach((k, v) -> {
            subLinkBuilderList.add(v);
        });
    }
}
